package negocio;

import java.util.BitSet;

/**
 *
 * @author Efren
 * @version 0.0.1
 * @since 03/02/2013
 */
public class Permiso {
    public static final byte PERMISO_AÑADIR_CLIENTE =0;
    public static final byte PERMISO_ELIMINAR_CLIENTE = 1;
    public static final byte PERMISO_CONSULTAR_CLIENTE = 2;
    public static final byte PERMISO_ACTUALIZAR_CLIENTE = 3;
    public static final byte PERMISO_AÑADIR_TELEFONO = 4;
    public static final byte PERMISO_ELIMINAR_TELEFONO = 5;
    public static final byte PERMISO_CONSULTAR_TELEFONO = 6;
    public static final byte PERMISO_ACTUALIZAR_TELEFONO = 7;
    public static final byte PERMISO_AÑADIR_DIRECCION = 8;
    public static final byte PERMISO_ELIMINAR_DIRECCION = 9;
    public static final byte PERMISO_CONSULTAR_DIRECCION = 10;
    public static final byte PERMISO_ACTUALIZAR_DIRECCION = 11;
    public static final byte PERMISO_AÑADIR_PETICION = 12;
    public static final byte PERMISO_ELIMINAR_PETICION = 13;
    public static final byte PERMISO_CONSULTAR_PETICION = 14;
    public static final byte PERMISO_ACTUALIZAR_PETICION = 15;
    public static final byte PERMISO_AÑADIR_PRESUPUESTO = 16;
    public static final byte PERMISO_ELIMINAR_PRESUPUESTO = 17;
    public static final byte PERMISO_CONSULTAR_PRESUPUESTO = 18;
    public static final byte PERMISO_ACTUALIZAR_PRESUPUESTO = 19;
    public static final byte PERMISO_AÑADIR_AVISO = 20;
    public static final byte PERMISO_ELIMINAR_AVISO = 21;
    public static final byte PERMISO_CONSULTAR_AVISO = 22;
    public static final byte PERMISO_ACTUALIZAR_AVISO = 23;
    public static final byte PERMISO_AÑADIR_RECOGIDA = 24;
    public static final byte PERMISO_ELIMINAR_RECOGIDA = 25;
    public static final byte PERMISO_CONSULTAR_RECOGIDA = 26;
    public static final byte PERMISO_ACTUALIZAR_RECOGIDA =27;
    public static final byte PERMISO_AÑADIR_SERVICIO = 28;
    public static final byte PERMISO_ELIMINAR_SERVICIO = 29;
    public static final byte PERMISO_CONSULTAR_SERVICIO = 30;
    public static final byte PERMISO_ACTUALIZAR_SERVICIO = 31;
    public static final byte PERMISO_AÑADIR_EQUIPOALMACEN = 32;
    public static final byte PERMISO_ELIMINAR_EQUIPOALMACEN = 33;
    public static final byte PERMISO_CONSULTAR_EQUIPOALMACEN = 34;
    public static final byte PERMISO_ACTUALIZAR_EQUIPOALMACEN = 35;
    public static final byte PERMISO_AÑADIR_FACTURA = 36;
    public static final byte PERMISO_ELIMINAR_FACTURA = 37;
    public static final byte PERMISO_CONSULTAR_FACTURA = 38;
    public static final byte PERMISO_ACTUALIZAR_FACTURA = 39;
    public static final byte PERMISO_AÑADIR_TAREA = 40;
    public static final byte PERMISO_ELIMINAR_TAREA = 41;
    public static final byte PERMISO_CONSULTAR_TAREA = 42;
    public static final byte PERMISO_ACTUALIZAR_TAREA = 43;
    public static final byte PERMISO_AÑADIR_TECNICO = 44;
    public static final byte PERMISO_ELIMINAR_TECNICO = 45;
    public static final byte PERMISO_CONSULTAR_TECNICO = 46;
    public static final byte PERMISO_ACTUALIZAR_TECNICO = 47;
    public static final int numPermisos = 48;
    private BitSet permisos;
    
    public Permiso(long decimal){
        this.permisos = new BitSet(numPermisos);
        String binario = Long.toBinaryString(decimal);
        for (int i = (binario.length()-1); i >0 ; i--){
            Character car = binario.charAt(i);
            if (car == '1'){
                permisos.set(i);
            }
        }
    }
   public boolean tienePermisoPara(byte accion){
       return permisos.get(accion);
   } 
}

// Permisos máximos 281474976710655